$.extend({
    /**
     * 
     * @param {*} message 
     * @param {*} option 
     */
    notify:function(message,option){
        option = option||{};
        let type = option.type||'primary';
        let position = option.position||'topcenter';
        let timeout = option.timeout||3000;
        let title = option.title;
        let html =
        `<div id="alter_notify" style="min-width:250px;z-index:9999;position:fixed;" class="fade show alert alert-${type}" role="alert">
            ${message}
        </div>`;
        if (title) {
            html = `<div id="alter_notify" style="min-width:250px;z-index:9999;position:fixed;" class="fade show alert alert-${type}" role="alert">
                <h4 class="alert-heading">${title}</h4>
                <hr>
                ${message}
            </div>`;
        }
        $(document.body).append(html);
        switch (position) {
            case 'topleft':
                $('#alter_notify').css('top','10px');
                $('#alter_notify').css('left','10px');
                break;
            case 'topcenter':
                $('#alter_notify').css('top','10px');
                $('#alter_notify').css('left',$(document).width()/2 - $('#alter_notify').width()/2 + 'px');
                break;
            case 'topright':
                $('#alter_notify').css('top','10px');
                $('#alter_notify').css('right','10px');
                break;
            case 'bottomleft':
                $('#alter_notify').css('bottom','10px');
                $('#alter_notify').css('left','10px');
                break;
            case 'bottomcenter':
                $('#alter_notify').css('bottom','10px');
                $('#alter_notify').css('left',$(document).width()/2 - $('#alter_notify').width()/2 + 'px');
                break;
            case 'bottomright':
                $('#alter_notify').css('bottom','10px');
                $('#alter_notify').css('right','10px');
                break;
            default:
                break;
        }
        $('#alter_notify').alert();
        setTimeout(() => {
            $('#alter_notify').alert('close');
        }, timeout);
    },

    notifyErrors:function(errors,option){
        option = option|| {};
        if (!option.type) {
            option = Object.assign(option,{type:'danger'});
        }
        let msg = '';
        if (typeof(errors) == 'string' ) {
            msg = `<p>${errors}</p>`;
        }
        else if(errors instanceof Object)
        {
            for (const key in errors) {
                var value = errors[key];
                if (value instanceof String) {
                    msg +=  `<p>${value}</p>`
                }
                else if(value instanceof Array)
                {
                    value.forEach(svalue => {
                        msg += `<p>${value}</p>`
                    });
                }
            }
        }
        this.notify(msg,option)
    }
})